var ws = require('nodejs-websocket')

//标识用户人数
let count = 0
//type0表示连接1表示断开
const connection = 0
const clost = 1

var server = ws.createServer(function (conn) {
    console.log("New connection")
    count++
    //每新建一个连接，都有一个conn对象
    conn.username = `用户${count}`

    // 有新连接，立即进行广播
    broadcast(server, {
        type: connection,
        msg : `用户${count}进入了房间`,
        color: `yellow`
    })
    // 接收到浏览器数据时触发
    conn.on("text", function (str) {
        broadcast(server, {
            type: connection,
            msg : `用户${count}: ${str}`,
            color: 'green'
        })
    })
    conn.on("close", function (code, reason) {
        count--
        broadcast(server, {
            type: clost,
            msg : `用户${count}: 离开了房间`,
            color: 'red'
        })
    })
    // 必须有，否则程序会报错，终止
    conn.on('error', ()=>{
        console.log('监听异常')
    })
})

// 处理广播
function broadcast(server, msg){
    // 包含客户端所有的连接的数组
    server.connections.forEach( item  => {
        item.send( JSON.stringify(msg) )
    })

}
server.listen(8081,'localhost',()=>{
    console.log('服务器启动，监听8081')
})